A new breed of Web-based data integration applications is sprouting up all across the Internet. Colloquially termed mashups, their popularity stems from the emphasis on interactive user participation and the monster-of-Frankenstein-like manner in which they aggregate and stitch together third-party data. The sprouting metaphor is a reasonable one; a mashup Web site is characterized by the way in which it spreads roots across the Web, drawing upon content and functionality retrieved from data sources that lay outside of its organizational boundaries.
This vague data-integration definition of a mashup certainly is not a rigorous one. A good insight as to what makes a mashup is to took at the etymology of the term: it was borrowed from the pop music scene, where a mashup is a new song that is mixed from the vocal and instrumental tracks from two different source songs (i.e., usually belonging to different genres). Like these songs, a mashup is an unusual or innovative composition of content (e.g., often from unrelated data sources), made for human (i.e., rather than computerized) consumption.
So, what might a mashup look like? The ChicagoCrime.org Web site is a great intuitive example of what's called a mapping mashup. One of the first mashups to gain widespread popularity in the press, the Web site mashes crime data from the Chicago Police Department's online database with cartography from Google Maps. Users can interact with the mashup site, such as instructing it to graphically display a map containing pushpins that reveal the details of all recent burglary crimes in South Chicago. The concept and the presentation are simple, and the composition of crime and map data is visually powerful.
Mashups thus represent an exciting genre of interactive Web applications that draw upon content retrieved from external data sources to create entirely new and innovative services. They are a hallmark of the second generation of Web applications informally known as Web 2.0. This introductory article explores what it means to be a mashup, the different classes of popular mashups constructed today, and the enabling technologies that mashup developers leverage to create their applications. Additionally, you'll see many of the emerging technical and social challenges that mashup developers face.
In the Web 2.0 era, software components known as widgets (or gadgets) are becoming the focus of a component based programming model. These Widgets, which encapsulate web services (e.g., REST, SOAP, XMLRPC, etc) and marry the resulting content with new rich interactive user interfaces, are targeted for use by less skilled users (e.g., non-programmers) to create new situational applications or mashups. A mashup can be thought of as a web application that combines data from more than one source into a single integrated tool; an example is the use of cartographic data from Google Maps to add location information to real-estate data from Craigslist, thereby creating a new and distinct web service that was not originally provided by either source. Google, for example, is developing Google Gadgets for their online Google Portal, and Microsoft has developed gadgets for its Windows Live portal application. IBM, for example, has recently made an entry into this arena with its Mashup Maker technology, which is referred to as QEDWiki.
Before a mashup ecosystem can mature around a production and consumption of such Widgets, content providers need to realize some sort of bartering systems that will support a business justification for entry into this evolving marketplace. In order for a Widget Content Provider to justify an investment into this space, such an entity needs a platform whereby their widgets can be provisioned for consumption (e.g., for fee or trade) by mashup assemblers and consumers. The concept of a Mashup Delivery Community Portal reflects the notion of a Service Provider platform for connecting Mashup Consumers, Mashup Assemblers and Widget Providers. A Market Manager, for example, represents the concept of a software component within a Service Providers Mashup Delivery Community Portal (MDCP) whereby community participants can describe to the mashup platform pre-negotiated bartering agreements. These agreements can be then utilized to assist the Mashup Delivery Community Portal in managing the utilization of mashup applications and the widgets they contain.